Hive κ΄λ¦¬μ λν μ’ ν© κ°μ΄λλ‘, μν€ν μ², λ°μ΄ν° μ μ₯, 쿼리 μ΅μ ν, 보μ λ° κΈλ‘λ² μ¬μ©μλ₯Ό μν λͺ¨λ² μ¬λ‘λ₯Ό λ€λ£Ήλλ€.
Hive κ΄λ¦¬ κΈ°λ³Έ μ¬ν μ΄ν΄: μ’ ν© κ°μ΄λ
Apache Hiveλ λ°μ΄ν° 쿼리 λ° λΆμμ μ 곡νκΈ° μν΄ Hadoop μμ ꡬμΆλ λ°μ΄ν° μ¨μ΄νμ°μ€ μμ€ν μ λλ€. HDFS λ° κΈ°ν μ€ν λ¦¬μ§ μμ€ν μ λ€μν νμμΌλ‘ μ μ₯λ λ°μ΄ν°λ₯Ό 쿼리νκΈ° μν SQLκ³Ό μ μ¬ν μΈν°νμ΄μ€λ₯Ό μ 곡ν©λλ€. μ΄ κ°μ΄λλ μν€ν μ², λ°μ΄ν° μ μ₯, 쿼리 μ΅μ ν, 보μ λ° κΈλ‘λ² μ¬μ©μλ₯Ό μν λͺ¨λ² μ¬λ‘λ₯Ό λ€λ£¨λ Hive κ΄λ¦¬μ λν ν¬κ΄μ μΈ κ°μλ₯Ό μ 곡ν©λλ€.
1. Hive μν€ν μ² μκ°
ν¨κ³Όμ μΈ κ΄λ¦¬λ₯Ό μν΄μλ Hiveμ μν€ν μ²λ₯Ό μ΄ν΄νλ κ²μ΄ μ€μν©λλ€. Hiveλ λͺ κ°μ§ μ£Όμ κ΅¬μ± μμλ‘ μ΄λ£¨μ΄μ Έ μμ΅λλ€:
- Hive ν΄λΌμ΄μΈνΈ: μ¬μ©μκ° μΏΌλ¦¬λ₯Ό μ μΆνλ μΈν°νμ΄μ€μ λλ€. μΌλ°μ μΈ ν΄λΌμ΄μΈνΈλ‘λ Hive CLI, Beeline, JDBC λ° ODBC λλΌμ΄λ²κ° μμ΅λλ€.
- Hive λλΌμ΄λ²: ν΄λΌμ΄μΈνΈλ‘λΆν° 쿼리λ₯Ό μμ νκ³ , μ€ν κ³νμ μμ±νλ©°, 쿼리 μλͺ μ£ΌκΈ°λ₯Ό κ΄λ¦¬ν©λλ€.
- μ»΄νμΌλ¬: 쿼리λ₯Ό νμ±νκ³ , μλ―Έ λΆμμ μννλ©°, λ Όλ¦¬μ κ³νμ μμ±ν©λλ€.
- μ΅ν°λ§μ΄μ : λ Όλ¦¬μ κ³νμ 물리μ κ³νμΌλ‘ μ΅μ νν©λλ€. μ΅μ Hive λ²μ μ λΉμ© κΈ°λ° μ΅μ ν(CBO)λ₯Ό νμ©ν©λλ€.
- μ€νκΈ°: 물리μ κ³νμ μ μλ μμ μ μ€νν©λλ€.
- λ©νμ€ν μ΄: Hive ν μ΄λΈ, μ€ν€λ§, νν°μ μ λν λ©νλ°μ΄ν°λ₯Ό μ μ₯νλ μ€μ μ μ₯μμ λλ€. μΌλ°μ μΈ λ©νμ€ν μ΄ μ΅μ μΌλ‘λ Derby(λ¨μΌ μ¬μ©μ μλ리μ€μ©), MySQL, PostgreSQL λ° ν΄λΌμ°λ κΈ°λ° λ©νμ€ν μ΄(μ: AWS Glue λ°μ΄ν° μΉ΄νλ‘κ·Έ)κ° μμ΅λλ€.
- Hadoop (HDFS λ° MapReduce/Tez/Spark): κΈ°λ³Έ λΆμ° μ μ₯ λ° μ²λ¦¬ νλ μμν¬μ λλ€.
μμ: μ¬μ©μκ° Beelineμ ν΅ν΄ 쿼리λ₯Ό μ μΆν©λλ€. Hive λλΌμ΄λ²κ° 쿼리λ₯Ό μμ νκ³ , μ»΄νμΌλ¬μ μ΅ν°λ§μ΄μ κ° μ΅μ νλ μ€ν κ³νμ μμ±ν©λλ€. κ·Έλ° λ€μ μ€νκΈ°λ Hadoop 리μμ€λ₯Ό μ¬μ©νμ¬ κ³νμ μ€ννκ³ HDFSμμ λ°μ΄ν°λ₯Ό κ²μνμ¬ κ³νμ λ°λΌ μ²λ¦¬ν©λλ€. κ²°κ³Όλ Beelineμ ν΅ν΄ μ¬μ©μμκ² λ°νλ©λλ€.
2. λ©νμ€ν μ΄ κ΄λ¦¬
λ©νμ€ν μ΄λ Hiveμ μ¬μ₯μ λλ€. μ μ ν κ΄λ¦¬λ λ°μ΄ν° κ²μ κ°λ₯μ±κ³Ό μΌκ΄μ±μ 보μ₯ν©λλ€. μ£Όμ μΈ‘λ©΄μ λ€μκ³Ό κ°μ΅λλ€:
2.1. λ©νμ€ν μ΄ κ΅¬μ±
μ¬λ°λ₯Έ λ©νμ€ν μ΄ κ΅¬μ±μ μ ννλ κ²μ΄ μ€μν©λλ€. νλ‘λμ νκ²½μμλ MySQLμ΄λ PostgreSQLκ³Ό κ°μ κ°λ ₯ν κ΄κ³ν λ°μ΄ν°λ² μ΄μ€λ₯Ό μ¬μ©νλ κ²μ΄ μ’μ΅λλ€. AWS Glue λ°μ΄ν° μΉ΄νλ‘κ·Έμ κ°μ ν΄λΌμ°λ κΈ°λ° λ©νμ€ν μ΄λ νμ₯μ±κ³Ό κ΄λ¦¬ν μλΉμ€λ₯Ό μ 곡ν©λλ€.
μμ: MySQL λ©νμ€ν μ΄λ₯Ό μ€μ νλ €λ©΄ hive-site.xml νμΌμ MySQL λ°μ΄ν°λ² μ΄μ€ μ°κ²° μΈλΆ μ 보(JDBC URL, μ¬μ©μ μ΄λ¦, λΉλ°λ²νΈ ν¬ν¨)λ₯Ό ꡬμ±ν΄μΌ ν©λλ€.
2.2. λ©νμ€ν μ΄ λ°±μ λ° λ³΅κ΅¬
μ¬ν΄ 볡ꡬλ₯Ό μν΄μλ λ©νμ€ν μ΄λ₯Ό μ κΈ°μ μΌλ‘ λ°±μ
νλ κ²μ΄ νμμ μ
λλ€. λ°±μ
μ μλνλμ΄μΌ νλ©° μμ ν μμΉμ μ μ₯λμ΄μΌ ν©λλ€. mysqldump(MySQLμ©) λλ λ€λ₯Έ λ°μ΄ν°λ² μ΄μ€ μμ€ν
μ© μ μ¬ λꡬλ₯Ό μ¬μ©νλ κ²μ κ³ λ €νμμμ€.
μμ: MySQL λ©νμ€ν μ΄ λ°μ΄ν°λ² μ΄μ€λ₯Ό μ격 μ μ₯ μμΉμ λ§€μΌ λ°±μ νλ cron μμ μ ꡬνν©λλ€.
2.3. λ©νμ€ν μ΄ μ κ·Έλ μ΄λ
λ©νμ€ν μ΄λ₯Ό μ κ·Έλ μ΄λνλ €λ©΄ λ°μ΄ν° μμ€μ΄λ μμμ λ°©μ§νκΈ° μν΄ μ μ€ν κ³νμ΄ νμν©λλ€. μ κ·Έλ μ΄λ μ μ°¨λ 곡μ Apache Hive λ¬Έμλ₯Ό λ°λ₯΄μμμ€.
μμ: λ©νμ€ν μ΄λ₯Ό μ κ·Έλ μ΄λνκΈ° μ μ κΈ°μ‘΄ λ©νμ€ν μ΄ λ°μ΄ν°λ² μ΄μ€μ μ 체 λ°±μ μ μμ±ν©λλ€. κ·Έλ° λ€μ λμ λ²μ μ λν Hive λ¬Έμμ μ 곡λ νΉμ μ κ·Έλ μ΄λ μ§μΉ¨μ λ°λ¦ λλ€.
2.4 λ©νμ€ν μ΄ λ³΄μ
λ°μ΄ν°λ₯Ό 보νΈνλ €λ©΄ λ©νμ€ν μ΄λ₯Ό 보νΈνλ κ²μ΄ μ€μν©λλ€. μ κ·Ό μ μ΄λ₯Ό ꡬννκ³ , λ―Όκ°ν λ°μ΄ν°λ₯Ό μνΈννλ©°, λ©νμ€ν μ΄ νλμ μ κΈ°μ μΌλ‘ κ°μ¬νμμμ€.
μμ: λ©νμ€ν μ΄ λ°μ΄ν°λ² μ΄μ€μ λν μ κ·Όμ μΉμΈλ μ¬μ©μμ μ ν리μΌμ΄μ μΌλ‘λ§ μ νν©λλ€. κ°λ ₯ν μνΈλ₯Ό μ¬μ©νκ³ λ©νμ€ν μ΄μ μ μ₯λ λ―Όκ°ν λ°μ΄ν°μ λν΄ μνΈνλ₯Ό νμ±νν©λλ€.
3. λ°μ΄ν° μ μ₯ λ° νν°μ λ
Hive λ°μ΄ν°λ μΌλ°μ μΌλ‘ HDFSμ μ μ₯λ©λλ€. 쿼리 μ±λ₯μ μν΄μλ λ€μν μ μ₯ νμκ³Ό νν°μ λ κΈ°μ μ μ΄ν΄νλ κ²μ΄ μ€μν©λλ€.
3.1. μ μ₯ νμ
Hiveλ λ€μκ³Ό κ°μ λ€μν μ μ₯ νμμ μ§μν©λλ€:
- TextFile: κ°λ¨ν ν μ€νΈ νμμ΄μ§λ§ 쿼리μλ λ ν¨μ¨μ μ λλ€.
- SequenceFile: TextFileμ λΉν΄ λ λμ μμΆ λ° μ μ₯ ν¨μ¨μ±μ μ 곡νλ μ΄μ§ νμμ λλ€.
- RCFile: λΉ λ₯Έ λ°μ΄ν° κ²μμ μ΅μ νλ ν-μ΄ νμμ λλ€.
- ORC (Optimized Row Columnar): κ³ κΈ μμΆ λ° μΈλ±μ±μ μ§μνλ λ§€μ° ν¨μ¨μ μΈ μ΄ νμμ λλ€. λλΆλΆμ μ¬μ© μ¬λ‘μ κΆμ₯λ©λλ€.
- Parquet: λΆμ μν¬λ‘λμ μ΅μ νλ λ λ€λ₯Έ μΈκΈ° μλ μ΄ νμμ λλ€.
- Avro: Kafkaμ ν¨κ» μμ£Ό μ¬μ©λλ λ°μ΄ν° μ§λ ¬ν μμ€ν μ λλ€.
μμ: Hive ν
μ΄λΈμ μμ±ν λ STORED AS μ μ μ¬μ©νμ¬ μ μ₯ νμμ μ§μ ν©λλ€. μ: CREATE TABLE my_table (...) STORED AS ORC;.
3.2. νν°μ λ
νν°μ λμ ν μ΄λΈμ μ΄ κ°μ κΈ°μ€μΌλ‘ λ μμ λΆλΆμΌλ‘ λλλλ€. μ΄λ μ€μΊλλ λ°μ΄ν° μμ μ€μ¬ 쿼리 μ±λ₯μ ν¬κ² ν₯μμν΅λλ€.
μμ: νλ§€ ν
μ΄λΈμ yearμ monthλ‘ νν°μ
λνλ©΄ νΉμ μμ΄λ μ°λμ νλ§€λ₯Ό λΆμνλ λ³΄κ³ μμ 쿼리 μκ°μ ν¬κ² μ€μΌ μ μμ΅λλ€. CREATE TABLE sales (...) PARTITIONED BY (year INT, month INT);
3.3. λ²ν·ν
λ²ν·ν μ νν°μ μ λ²ν·μΌλ‘ λ λλλλ€. μ΄λ λ Έλ κ°μ λ°μ΄ν°λ₯Ό κ³ λ₯΄κ² λΆμ°νκ³ νΉμ μ νμ 쿼리, νΉν μ‘°μΈμ ν¬ν¨νλ 쿼리μ μ±λ₯μ ν₯μμν€λ λ° μ μ©ν©λλ€.
μμ: customer_idλ‘ ν
μ΄λΈμ λ²ν·ν
νλ©΄ customer_idλ₯Ό μ‘°μΈ ν€λ‘ μ¬μ©νλ λ€λ₯Έ ν
μ΄λΈκ³Όμ μ‘°μΈ μ±λ₯μ ν₯μμν¬ μ μμ΅λλ€. CREATE TABLE customers (...) CLUSTERED BY (customer_id) INTO 100 BUCKETS;
4. 쿼리 μ΅μ ν
νΉν λμ©λ λ°μ΄ν° μΈνΈμμ μμ© κ°λ₯ν μ±λ₯μ μ»μΌλ €λ©΄ Hive 쿼리λ₯Ό μ΅μ ννλ κ²μ΄ μ€μν©λλ€. λ€μ κΈ°μ μ κ³ λ €νμμμ€:
4.1. λΉμ© κΈ°λ° μ΅μ ν (CBO)
CBOλ 쿼리μ λ°μ΄ν°λ₯Ό λΆμνμ¬ κ°μ₯ ν¨μ¨μ μΈ μ€ν κ³νμ κ²°μ ν©λλ€. hive.cbo.enable=true, hive.compute.query.using.stats=true, hive.stats.autogather=true μμ±μ μ€μ νμ¬ CBOλ₯Ό νμ±νν©λλ€.
μμ: CBOλ κ΄λ ¨λ ν μ΄λΈμ ν¬κΈ°μ λ°λΌ κ°μ₯ ν¨μ¨μ μΈ μ‘°μΈ μκ³ λ¦¬μ¦μ μλμΌλ‘ μ νν μ μμ΅λλ€. μλ₯Ό λ€μ΄, ν ν μ΄λΈμ΄ λ€λ₯Έ ν μ΄λΈλ³΄λ€ ν¨μ¬ μμΌλ©΄ CBOλ MapJoinμ μ ννμ¬ μ±λ₯μ ν¬κ² ν₯μμν¬ μ μμ΅λλ€.
4.2. νν°μ ν루λ
WHERE μ μ μ¬μ©νμ¬ νν°μ
μ΄μ νν°λ§ν¨μΌλ‘μ¨ Hiveκ° νν°μ
μ μ¬λ°λ₯΄κ² ν루λνλλ‘ νμμμ€. μ΄λ κ² νλ©΄ Hiveκ° λΆνμν νν°μ
μ μ€μΊνλ κ²μ λ°©μ§ν μ μμ΅λλ€.
μμ: νν°μ
λ νλ§€ ν
μ΄λΈμ 쿼리ν λλ νμ WHERE μ μ νν°μ
μ΄μ ν¬ν¨νμμμ€: SELECT * FROM sales WHERE year = 2023 AND month = 10;.
4.3. μ‘°μΈ μ΅μ ν
μ μ ν μ‘°μΈ μ ν(μ: μμ ν μ΄λΈμ κ²½μ° MapJoin)μ μ¬μ©νκ³ μ‘°μΈ ν€κ° μ λλ‘ μΈλ±μ±λμλμ§ νμΈνμ¬ μ‘°μΈμ μ΅μ νν©λλ€.
μμ: ν° ν©νΈ ν
μ΄λΈκ³Ό μμ μ°¨μ ν
μ΄λΈμ μ‘°μΈνλ €λ©΄ MapJoinμ μ¬μ©νμμμ€: SELECT /*+ MAPJOIN(dim) */ * FROM fact JOIN dim ON fact.dim_id = dim.id;.
4.4. 벑ν°ν
벑ν°νλ λ°μ΄ν°λ₯Ό ν λ¨μκ° μλ λ°°μΉλ‘ μ²λ¦¬νμ¬ μ±λ₯μ ν₯μμν΅λλ€. hive.vectorize.enabled=trueλ₯Ό μ€μ νμ¬ λ²‘ν°νλ₯Ό νμ±νν©λλ€.
4.5. Tez λλ Spark μ€ν μμ§
μΌλ°μ μΌλ‘ λ λμ μ±λ₯μ μ 곡νλ―λ‘ MapReduce λμ Tez λλ Sparkλ₯Ό μ€ν μμ§μΌλ‘ μ¬μ©νλ κ²μ κ³ λ €νμμμ€. set hive.execution.engine=tez; λλ set hive.execution.engine=spark;λ₯Ό μ¬μ©νμ¬ μ€ν μμ§μ ꡬμ±ν©λλ€.
5. λ°μ΄ν° κ±°λ²λμ€ λ° λ³΄μ
λ°μ΄ν° κ±°λ²λμ€μ 보μμ Hive κ΄λ¦¬μ μ€μν μΈ‘λ©΄μ λλ€. λ€μ μ‘°μΉλ₯Ό ꡬννμμμ€:
5.1. μ κ·Ό μ μ΄
Hive κΆν λΆμ¬ κΈ°λ₯μ μ¬μ©νμ¬ Hive ν μ΄λΈ λ° λ°μ΄ν°μ λν μ κ·Όμ μ μ΄ν©λλ€. μ¬κΈ°μλ μν μ μ€μ νκ³ μ¬μ©μ λ° κ·Έλ£Ήμ κΆνμ λΆμ¬νλ κ²μ΄ ν¬ν¨λ©λλ€.
μμ: νΉμ ν
μ΄λΈμ λν΄ μ¬μ©μμκ² SELECT κΆν λΆμ¬: GRANT SELECT ON TABLE my_table TO user1;.
5.2. λ°μ΄ν° λ§μ€νΉ λ° νΈμ§
λ―Όκ°ν λ°μ΄ν°λ₯Ό 보νΈνκΈ° μν΄ λ°μ΄ν° λ§μ€νΉ λ° νΈμ§ κΈ°μ μ ꡬνν©λλ€. μ¬κΈ°μλ μ¬μ©μ μν μ΄λ λ°μ΄ν° λ―Όκ°λ μμ€μ λ°λΌ λ°μ΄ν°λ₯Ό λ§μ€νΉνκ±°λ νΈμ§νλ κ²μ΄ ν¬ν¨λ©λλ€.
5.3. λ°μ΄ν° κ³λ³΄ λ° κ°μ¬
λ°μ΄ν°μ μΆμ²μ λ³νμ μ΄ν΄νκΈ° μν΄ λ°μ΄ν° κ³λ³΄λ₯Ό μΆμ ν©λλ€. μ¬μ©μ νλ λ° λ°μ΄ν° μ κ·Ό ν¨ν΄μ λͺ¨λν°λ§νκΈ° μν΄ κ°μ¬λ₯Ό ꡬνν©λλ€.
5.4. μνΈν
μ μ‘ μ€ λ° μ μ₯λ λ―Όκ°ν λ°μ΄ν°λ₯Ό λͺ¨λ μνΈνν©λλ€. Hadoop λ° Hiveμμ μ 곡νλ μνΈν κΈ°λ₯μ μ¬μ©νμ¬ λ¬΄λ¨ μ κ·ΌμΌλ‘λΆν° λ°μ΄ν°λ₯Ό 보νΈν©λλ€.
6. μ¬μ©μ μ μ ν¨μ (UDF)
UDFλ₯Ό μ¬μ©νλ©΄ μ¬μ©μκ° μ¬μ©μ μ§μ ν¨μλ₯Ό μμ±νμ¬ Hiveμ κΈ°λ₯μ νμ₯ν μ μμ΅λλ€. μ΄λ λ΄μ₯λ Hive ν¨μμμ μ§μνμ§ μλ 볡μ‘ν λ°μ΄ν° λ³νμ΄λ κ³μ°μ μννλ λ° μ μ©ν©λλ€.
6.1. UDF κ°λ°
UDFλ Java λλ μ€ν¬λ¦½ν νλ μμν¬μμ μ§μνλ λ€λ₯Έ μΈμ΄λ‘ μμ±ν μ μμ΅λλ€. UDF κ°λ° λ° λ°°ν¬μ λν΄μλ Hive λ¬Έμλ₯Ό λ°λ₯΄μμμ€.
μμ: κ΅κ° μ½λμ λ°λΌ μ νλ²νΈ νμμ νμ€ννμ¬ λ€λ₯Έ μ§μ κ°μ λ°μ΄ν° μΌκ΄μ±μ 보μ₯νλ UDFλ₯Ό μμ±ν μ μμ΅λλ€.
6.2. UDF λ°°ν¬
UDFκ° ν¬ν¨λ JAR νμΌμ Hive ν΄λμ€ν¨μ€μ μΆκ°νκ³ μμ λλ μꡬ ν¨μλ₯Ό μμ±νμ¬ UDFλ₯Ό λ°°ν¬ν©λλ€.
μμ: ADD JAR /path/to/my_udf.jar; CREATE TEMPORARY FUNCTION standardize_phone_number AS 'com.example.StandardizePhoneNumberUDF';.
7. λͺ¨λν°λ§ λ° λ¬Έμ ν΄κ²°
μνν μ΄μμ 보μ₯νκΈ° μν΄ μ κΈ°μ μΌλ‘ Hive μ±λ₯μ λͺ¨λν°λ§νκ³ λ¬Έμ λ₯Ό ν΄κ²°ν©λλ€. λ€μ λꡬμ κΈ°μ μ μ¬μ©νμμμ€:
7.1. Hive λ‘κ·Έ
μ€λ₯ λ° μ±λ₯ λ³λͺ© νμμ μλ³νκΈ° μν΄ Hive λ‘κ·Έλ₯Ό λΆμν©λλ€. HiveServer2 λ‘κ·Έ, Metastore λ‘κ·Έ λ° Hadoop λ‘κ·Έλ₯Ό νμΈνμμμ€.
7.2. Hadoop λͺ¨λν°λ§ λꡬ
Hadoop Web UI, Ambari λλ Cloudera Managerμ κ°μ Hadoop λͺ¨λν°λ§ λꡬλ₯Ό μ¬μ©νμ¬ Hadoop ν΄λ¬μ€ν°μ μ λ°μ μΈ μνλ₯Ό λͺ¨λν°λ§νκ³ λ¦¬μμ€ μ μ½μ μλ³ν©λλ€.
7.3. 쿼리 νλ‘νμΌλ§
Hive 쿼리 νλ‘νμΌλ§ λꡬλ₯Ό μ¬μ©νμ¬ μ€ν κ³νμ λΆμνκ³ νΉμ 쿼리μ μ±λ₯ λ³λͺ© νμμ μλ³ν©λλ€.
7.4. μ±λ₯ νλ
μν¬λ‘λ νΉμ± λ° λ¦¬μμ€ κ°μ©μ±μ λ°λΌ μ±λ₯μ μ΅μ ννκΈ° μν΄ Hive κ΅¬μ± λ§€κ°λ³μλ₯Ό μ‘°μ ν©λλ€. μΌλ°μ μΈ λ§€κ°λ³μμλ λ©λͺ¨λ¦¬ ν λΉ, λ³λ ¬ μ²λ¦¬ λ° μΊμ±μ΄ ν¬ν¨λ©λλ€.
8. Hiveμ ACID μμ±
Hiveλ νΈλμμ μμ μ λν ACID(μμμ±, μΌκ΄μ±, κ³ λ¦½μ±, μ§μμ±) μμ±μ μ§μν©λλ€. μ΄λ₯Ό ν΅ν΄ λ μμ μ μΈ λ°μ΄ν° μ λ°μ΄νΈ λ° μμ κ° κ°λ₯ν©λλ€.
8.1. ACID νμ±ν
ACID μμ±μ νμ±ννλ €λ©΄ λ€μ μμ±μ μ€μ νμμμ€: hive.support.concurrency=true, hive.enforce.bucketing=true, hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager.
8.2. νΈλμμ μ¬μ©
νΈλμμ
μ μ¬μ©νμ¬ μ¬λ¬ μμ
μ μμμ μΌλ‘ μνν©λλ€. START TRANSACTION;μΌλ‘ νΈλμμ
μ μμνκ³ , μμ
μ μνν λ€μ COMMIT;μΌλ‘ νΈλμμ
μ 컀λ°νκ±°λ ROLLBACK;μΌλ‘ λ‘€λ°±ν©λλ€.
9. κΈλ‘λ² Hive κ΄λ¦¬λ₯Ό μν λͺ¨λ² μ¬λ‘
- λ°μ΄ν° νμ νμ€ν: λͺ¨λ ν μ΄λΈμμ μΌκ΄λ λ°μ΄ν° νμμ μ μ©νμ¬ μΏΌλ¦¬ λ° λΆμμ λ¨μνν©λλ€.
- λ°μ΄ν° νμ§ κ²μ¬ ꡬν: λ°μ΄ν° μ νμ±κ³Ό μμ μ±μ 보μ₯νκΈ° μν΄ λ°μ΄ν° νμ§ κ²μ¬λ₯Ό ꡬνν©λλ€.
- μμ μλν: λ°±μ , λ°μ΄ν° λ‘λ©, 쿼리 μ΅μ νμ κ°μ μΌμμ μΈ μμ μ μλνν©λλ€.
- κ΅μ‘ μ 곡: μ¬μ©μμκ² Hive λͺ¨λ² μ¬λ‘ λ° μ΅μ ν κΈ°μ μ λν κ΅μ‘μ μ 곡ν©λλ€.
- μ κΈ°μ μΈ κ΅¬μ± κ²ν : μ±λ₯μ μ΅μ ννκΈ° μν΄ μ κΈ°μ μΌλ‘ Hive κ΅¬μ± λ§€κ°λ³μλ₯Ό κ²ν νκ³ μ‘°μ ν©λλ€.
- ν΄λΌμ°λ μ루μ κ³ λ €: νμ₯μ±, λΉμ© ν¨μ¨μ± λ° κ΄λ¦¬ μ©μ΄μ±μ μν΄ ν΄λΌμ°λ κΈ°λ° Hive μ루μ μ νκ°ν©λλ€. ν΄λΌμ°λ μ루μ μ μ΄ κ°μ΄λμ μ€λͺ λ λ§μ κ΄λ¦¬ μμ μ λ¨μννλ κ΄λ¦¬ν Hive μλΉμ€λ₯Ό μ 곡ν μ μμ΅λλ€. μλ‘λ Amazon EMR, Google Cloud Dataproc, Azure HDInsightκ° μμ΅λλ€.
- κΈλ‘λ² λ°μ΄ν° νμ§ν: κΈλ‘λ² λ°μ΄ν°λ₯Ό λ€λ£° λ λκΈ° μκ°μ μ΅μννκ³ λ°μ΄ν° μμ£Ό μꡬ μ¬νμ μ€μνκΈ° μν΄ λ°μ΄ν° νμ§ν μ λ΅μ κ³ λ €ν©λλ€. μ¬κΈ°μλ λ€λ₯Έ μ§μμ λ³λμ Hive μΈμ€ν΄μ€λ ν μ΄λΈμ μμ±νλ κ²μ΄ ν¬ν¨λ μ μμ΅λλ€.
- μκ°λ κ΄λ¦¬: λ€λ₯Έ μ§μμ λ°μ΄ν°λ‘ μμ ν λ μκ°λμ μ μνμμμ€. λ°μ΄ν° μΌκ΄μ±μ 보μ₯νκΈ° μν΄ μ μ ν μκ°λ λ³νμ μ¬μ©νμμμ€.
- λ€κ΅μ΄ μ§μ: λ°μ΄ν°μ μ¬λ¬ μΈμ΄κ° ν¬ν¨λ κ²½μ° μ μ ν λ¬Έμ μΈμ½λ©μ μ¬μ©νκ³ μΈμ΄λ³ μ²λ¦¬λ₯Ό μν΄ UDFλ₯Ό μ¬μ©νλ κ²μ κ³ λ €νμμμ€.
10. κ²°λ‘
ν¨κ³Όμ μΈ Hive κ΄λ¦¬λ λΉ λ°μ΄ν° λΆμμ νμ νμ©νλ λ° νμμ μ λλ€. μν€ν μ²λ₯Ό μ΄ν΄νκ³ , 쿼리λ₯Ό μ΅μ ννλ©°, 보μ μ‘°μΉλ₯Ό ꡬννκ³ , λͺ¨λ² μ¬λ‘λ₯Ό λ°λ¦μΌλ‘μ¨ μ‘°μ§μ Hive λ°°ν¬κ° ν¨μ¨μ μ΄κ³ μ λ’°ν μ μμΌλ©° μμ νλλ‘ λ³΄μ₯ν μ μμ΅λλ€. μ΄ κ°μ΄λλ κΈλ‘λ² μ»¨ν μ€νΈμμ Hiveλ₯Ό κ΄λ¦¬νκΈ° μν κ²¬κ³ ν κΈ°λ°μ μ 곡νμ¬ μ¬μ©μκ° λ°μ΄ν°μμ κ·μ€ν ν΅μ°°λ ₯μ μΆμΆν μ μλλ‘ ν©λλ€.